<template>
  <div>
  <el-row :gutter="10">
    <el-col :xs="12" :sm="15" :md="20" :lg="24">
    <!-- <el-col :span="5"> -->
     <el-card  shadow="never" :body-style="contentViewHeight" class="card">
      <el-tag
        closable
        size="small"
        style="margin-bottom:5px"
        v-if="selectYyLeftTreesName"
        :disable-transitions="false"
        @close="handleNodeClose">
        {{selectYyLeftTreesName}}
      </el-tag>
      <el-row :gutter="5">
        <el-col :span="20">
          <el-input
            placeholder="输入关键字进行过滤"
            size="small"
            v-model="filterText">
          </el-input>
        </el-col>
        <el-col :span="4">
            <el-button type="primary" v-if="hasPermission('dqsy:dqsyquiry:yyRightTrees:add')" @click="addTreeNode" size="small" icon="el-icon-plus" circle></el-button>
        </el-col>
      </el-row>
      <el-tree
        class="filter-tree"
        :data="yyLeftTreesTreeData"
        :props="{
              value: 'id',             // ID字段名
              label: 'name',         // 显示名称
              children: 'children'    // 子级字段名
            }"
        default-expand-all
        :filter-node-method="filterNode"
        :expand-on-click-node="false"
        @node-click="handleNodeClick"
        ref="yyLeftTreesTree">
           <span class="custom-tree-node" slot-scope="{ node, data}">
            <span @click="jump(node.label)">{{ node.label }}</span>
            <span>
              <!-- 加权限 -->
               <el-button type="text"  v-if="hasPermission('dqsy:dqsyquiry:yyRightTrees:add')" class="tree-item-button" icon="el-icon-plus" @click="() => addChildTreeNode(data)">
               </el-button>
                <el-button type="text" v-if="hasPermission('dqsy:dqsyquiry:yyRightTrees:edit')" class="tree-item-button" icon="el-icon-edit-outline" @click="() => editTreeNode(data)">
               </el-button>
                <el-button type="text" v-if="hasPermission('dqsy:dqsyquiry:yyRightTrees:del')" class="tree-item-button" icon="el-icon-delete" @click="() => delTreeNode(data)">
               </el-button>
            </span>
          </span>
      </el-tree>
      </el-card>
    </el-col>


</el-row>
        <!-- 弹窗, 新增 / 修改 -->
    <YyRightTreesForm  ref="yyRightTreesForm" @refreshDataList="refreshList"></YyRightTreesForm>
    <YyLeftTreesForm  ref="yyLeftTreesForm" @refreshTree="refreshTree"></YyLeftTreesForm>

  </div>
</template>

<script>
  import YyRightTreesForm from './YyRightTreesForm'
  import YyLeftTreesForm from './YyLeftTreesForm'
  import SelectTree from '@/components/treeSelect/treeSelect.vue'
  export default {
    data () {
      return {
        searchForm: {
          kind: {
            id: ''
          }
        },
        filterText: '',
        yyLeftTreesTreeData: [],
        selectYyLeftTreesName: '',
        dataList: [],
        pageNo: 1,
        pageSize: 10,
        total: 0,
        orderBy: '',
        dataListSelections: [],
        isSearchCollapse: false,
        isImportCollapse: false,
        loading: false
      }
    },
    components: {
      SelectTree,
      YyRightTreesForm,
      YyLeftTreesForm
    },
    activated () {
      this.refreshTree()
      this.refreshList()
    },
    computed: {
      contentViewHeight () {
        let height = this.$store.state.common.documentClientHeight - 122
        return {minHeight: height + 'px'}
      }
    },
    watch: {
      filterText (val) {
        this.$refs.yyLeftTreesTree.filter(val)
      }
    },
    methods: {
      filterNode (value, data) {
        if (!value) return true
        return data.name.indexOf(value) !== -1
      },
      refreshTree () {
        this.$http({
          url: `/dqsy/dqsyquiry/yyLeftTrees/treeData`,
          method: 'get'
        }).then(({data}) => {
          this.yyLeftTreesTreeData = data.treeData
        })
      },
      jump(a) {
        /* eslint-disable */
        var one = '刑法修正案(一)'
        var two = "刑法修正案(二)";
        var three = "刑法修正案(三)";
        var four = "刑法修正案(四)";
        var five = "刑法修正案(五)";
        var six = "刑法修正案(六)";
        var selven = "刑法修正案(七)";
        var eight = "刑法修正案(八)";
        var nine = "刑法修正案(九)";
        var ten = "刑法修正案(十)";
        var tenone = "[2010.6.13]最高人民法院 最高人民检察院 公安部 国家安全部 司法部关于办理死刑案件审查判断证据若干问题的规定";
        var tentwo = "[2010.8.31]最高人民检察院 公安部 关于印发《最高人民检察院　公安部关于审查逮捕阶段讯问犯罪嫌疑人的规定》的通知";
        var elevenone = "[2011.7.27]关于办理妨害武装部队制式服装、车辆号牌管理秩序等刑事案件具体应用法律若干问题的解释";
        var twelveone = "[2012.8.30]全部文献";
        var twelvetwo = "[2012.12.12]最高人民法院 最高人民检察院 关于办理妨害国(边)境管理刑事案件应用法律若干问题的解释";
        var twelvethree = "[2012.12.21]最高人民检察院 关于废止1979年底以前制发的部分司法解释性质文件的决定";
        var twelvefour = "[2012.12.26]最高人民法院 最高人民检察院 公安部 国家安全部 司法部 全国人大常委会法制工作委员会 关于实施刑事诉讼法若干问题的规定";
        var thirteenone = "[2013.1.1]最高人民法院 最高人民检察院 关于办理行贿刑事案件具体应用法律若干问题的解释";
        var thirteentwo = "[2013.1.3]关于废止1980年1月1日至1997年6月30日期间制发的部分司法解释和司法解释性质文件的决定";
        var thirteenthree = "[2013.1.4]最高人民法院 最高人民检察院 关于废止1980年1月1日至1997年6月30日期间制发的部分司法解释和司法解释性质文件的决定";
        var thirteenfour = "[2013.1.9]最高人民法院 最高人民检察院 关于办理渎职刑事案件适用法律若干问题的解释（一）";
        var thirteenfive = "[2013.4.2]最高人民法院 最高人民检察院 关于办理盗窃刑事案件适用法律若干问题的解释";
        var thirteensix = "[2013.4.7]最高人民法院 最高人民检察院 关于废止1997年7月1日至2011年12月31日期间制发的部分司法解释和司法解 释性质文件的决定";
        var thirteenselven = "[2013.4.7]最高人民检察院 关于废止1997年7月1日至2012年6月30日期间制发的部分司法解释性质文件的决定";
        var thirteeneight = "[2013.4.23]最高人民法院 最高人民检察院 关于办理敲诈勒索刑事案件适用法律若干问题的解释";
        var thirteennine = "[2013.5.2]最高人民法院 最高人民检察院 关于办理危害食品安全刑事案件适用法律若干问题的解释";
        var thirteenten = "[2013.6.5]解读“两高”关于办理盗窃刑事案件司法解释";
        var thirteeneleven = "[2013.6.17]最高人民法院 最高人民检察院 关于办理环境污染刑事案件适用法律若干问题的解释";
        var thirteentwelve = "[2013.9.6]最高人民法院 最高人民检察院 关于办理利用信息网络实施诽谤等刑事案件适用法律若干问题的解释";
        var thirteenthirteen = "[2013.11.18]最高人民法院 最高人民检察院 关于办理抢夺刑事案件适用法律若干问题的解释";
        var thirteenfourteen = "[2013.12.18]最高人民法院 最高人民检察院 公安部 关于办理醉酒驾驶机动车刑事案件适用法律若干问题的意见";
        var fourteenone = "[2014.1.3]最高人民检察院 关于审查起诉期间犯罪嫌疑人脱逃或者患有严重疾病的应当如何处理的批复";
        var fourteentwo = "[2014.4.25]全国人大常委会关于刑法刑诉法有关规定的解释";
        var fourteenthree = "[2014.8.21]人民检察院民事诉讼监督规则（试行）";
        var fourteenfour = "[2014.9.10]最高人民法院 最高人民检察院 关于办理走私刑事案件适用法律若干问题的解释";
        var fourteenfive = "[2014.9.29]最高人民法院、最高人民检察院《关于办理走私刑事案件适用法律若干问题的解释";
        var fourteensix = "[2014.11.19]最高人民法院 最高人民检察院 关于办理危害药品安全刑事案件适用法律若干问题的解释";
        var fifteenone = "[2015.1.30]最高人民法院关于适用《中华人民共和国民事诉讼法》的解释";
        var fifteentwo = "[2015.4.22]最高人民法院关于适用《中华人民共和国行政诉讼法》若干问题的解释";
        var fifteenthree = "[2015.12.14]最高人民法院 最高人民检察院 全刑事案件适用法律若干问题的解释";
        var fifteenfour = "[2015.12.28]最高人民法院 最高人民检察院 关于办理刑事赔偿案件适用法律若干问题的解释";
        var fifteenfive = "[2015.12.30]最高人民法院 最高人民检察院 关于办理妨害文物管理等刑事案件适用法律若干问题的解释";
        var sixteenone = "[2015.12.30]最高人民法院 最高人民检察院 关于办理妨害文物管理等刑事案件适用法律若干问题的解释";
        var sixteentwo = "[2016.11.28]最高人民法院 最高人民检察院 关于办理非法采矿、破坏性采矿刑事案件适用法律若干问题的解释";
        var sixteenthree = "[2016.12.27]最高人民法院 最高人民检察院 关于办理环境污染刑事案件适用法律若干问题的解释";
        var seventeenone = "[2017.6.27]最高人民法院 最高人民检察院 关于办理扰乱无线电通讯管理秩序等刑事案件适用法律若干问题的解释";
        var seventeentwo = "[2017.7.21]最高人民法院 最高人民检察院 关于办理组织、强迫、引诱、容留、介绍卖淫刑事案件适用法律若干问题的解释";
        var seventeenthree = "[2017.8.14]最高人民法院 最高人民检察院 关于办理药品、医疗器械注册申请材料造假刑事案件适用法律若干问题的解释";
        var eighteenone = "[2018.9.26]最高人民法院 最高人民检察院关于办理虚假诉讼刑事案件适用法律若干问题的解释";
        var eighteentwo = "[2018.11.28]最高人民法院 最高人民检察院关于修改《关于办理妨害信用卡管理刑事案件具体应用法律若干问题的解释》的决定";
        var ninteenone = "[2019.1.31]最高人民法院 最高人民检察院关于办理非法从事资金支付结算业务、非法买卖外汇刑事案件适用法律若干问题的解释";
        var ninteentwo = "[2019.6.27]最高人民法院 最高人民检察院关于办理利用未公开信息交易刑事案件适用法律若干问题的解释";
        var ninteenthree = "[2019.6.28]最高人民法院 最高人民检察院 公安部 国家安全部 司法部关于办理死刑案件审查判断证据若干问题的规定";
        var ninteenfour = "[2019.10.21]最高人民法院 最高人民检察院关于办理非法利用信息网络、帮助信息网络犯罪活动等刑事案件适用法律若干问题的解释（法释〔2019〕15号）";

        var faone = '第一章刑事责任';
        var fatwo = '第二章犯罪';
        var fathree = '第三章刑罚';
        var fafour = '第四章刑罚的具体运用';
        var fafive = '第五章其他规定';
        var fasix = '第一章危害国家安全罪';
        var faselven = '第二章危害公共安全罪';
        var faeight = '第三章破坏社会主义市场经济秩序罪';
        var fanine = '第四章侵犯公民人身权利民主';
        var faten = '第五章侵犯财产罪';
        var faeleven = '第六章妨害社会管理秩序罪';
        var fatwelven = '第七章危害国防利益罪';
        var fathirteen = '第八章贪污贿赂罪';
        var fafourteen = '第九章渎职罪';
        var fafiveteen = '第十章军人违反职责罪';



        if (a === one) {
          this.$router.push('/test/smalltest/quiryjump/one')
        } else if (a === two) {
          this.$router.push('/test/smalltest/quiryjump/two')
        } else if (a === three) {
          this.$router.push('/test/smalltest/quiryjump/three')
        } else if (a === four) {
          this.$router.push('/test/smalltest/quiryjump/four')
        } else if (a === five) {
          this.$router.push('/test/smalltest/quiryjump/five')
        } else if (a === six) {
          this.$router.push('/test/smalltest/quiryjump/six')
        } else if (a === selven) {
          this.$router.push('/test/smalltest/quiryjump/selven')
        } else if (a === eight) {
          this.$router.push('/test/smalltest/quiryjump/eight')
        } else if (a === nine) {
          this.$router.push('/test/smalltest/quiryjump/nine')
        } else if (a === ten) {
          this.$router.push('/test/smalltest/quiryjump/ten')
        } else if (a === tenone) {
          this.$router.push('/test/smalltest/quiryjump/tenone')
        } else if (a === tentwo) {
          this.$router.push('/test/smalltest/quiryjump/tentwo')
        } else if (a === elevenone) {
          this.$router.push('/test/smalltest/quiryjump/elevenone')
        } else if (a === twelveone) {
          this.$router.push('/test/smalltest/quiryjump/twelveone')
        } else if (a === twelvetwo) {
          this.$router.push('/test/smalltest/quiryjump/twelvetwo')
        } else if (a === twelvethree) {
          this.$router.push('/test/smalltest/quiryjump/twelvethree')
        } else if (a === twelvefour) {
          this.$router.push('/test/smalltest/quiryjump/twelvefour')
        } else if (a === thirteenone) {
          this.$router.push('/test/smalltest/quiryjump/thirteenone')
        } else if (a === thirteentwo) {
          this.$router.push('/test/smalltest/quiryjump/thirteentwo')
        } else if (a === thirteenthree) {
          this.$router.push('/test/smalltest/quiryjump/thirteenthree')
        } else if (a === thirteenfour) {
          this.$router.push('/test/smalltest/quiryjump/thirteenfour')
        } else if (a === thirteenfive) {
          this.$router.push('/test/smalltest/quiryjump/thirteenfive')
        } else if (a === thirteensix) {
          this.$router.push('/test/smalltest/quiryjump/thirteensix')
        } else if (a === thirteenselven) {
          this.$router.push('/test/smalltest/quiryjump/thirteenselven')
        } else if (a === thirteeneight) {
          this.$router.push('/test/smalltest/quiryjump/thirteeneight')
        } else if (a === thirteennine) {
          this.$router.push('/test/smalltest/quiryjump/thirteennine')
        } else if (a === thirteenten) {
          this.$router.push('/test/smalltest/quiryjump/thirteenten')
        } else if (a === thirteeneleven) {
          this.$router.push('/test/smalltest/quiryjump/thirteeneleven')
        } else if (a === thirteentwelve) {
          this.$router.push('/test/smalltest/quiryjump/thirteentwelve')
        } else if (a === thirteenthirteen) {
          this.$router.push('/test/smalltest/quiryjump/thirteenthirteen')
        } else if (a === thirteenfourteen) {
          this.$router.push('/test/smalltest/quiryjump/thirteenfourteen')
        } else if (a === fourteenone) {
          this.$router.push('/test/smalltest/quiryjump/fourteenone')
        } else if (a === fourteentwo) {
          this.$router.push('/test/smalltest/quiryjump/fourteentwo')
        } else if (a === fourteenthree) {
          this.$router.push('/test/smalltest/quiryjump/fourteenthree')
        } else if (a === fourteenfour) {
          this.$router.push('/test/smalltest/quiryjump/fourteenfour')
        } else if (a === fourteenfive) {
          this.$router.push('/test/smalltest/quiryjump/fourteenfive')
        } else if (a === fourteensix) {
          this.$router.push('/test/smalltest/quiryjump/fourteensix')
        } else if (a === fifteenone) {
          this.$router.push('/test/smalltest/quiryjump/fifteenone')
        } else if (a === fifteentwo) {
          this.$router.push('/test/smalltest/quiryjump/fifteentwo')
        } else if (a === fifteenthree) {
          this.$router.push('/test/smalltest/quiryjump/fifteenthree')
        } else if (a === fifteenfour) {
          this.$router.push('/test/smalltest/quiryjump/fifteenfour')
        } else if (a === fifteenfive) {
          this.$router.push('/test/smalltest/quiryjump/fifteenfive')
        } else if (a === sixteenone) {
          this.$router.push('/test/smalltest/quiryjump/sixteenone')
        } else if (a === sixteentwo) {
          this.$router.push('/test/smalltest/quiryjump/sixteentwo')
        } else if (a === sixteenthree) {
          this.$router.push('/test/smalltest/quiryjump/sixteenthree')
        } else if (a === seventeenone) {
          this.$router.push('/test/smalltest/quiryjump/seventeenone')
        } else if (a === seventeentwo) {
          this.$router.push('/test/smalltest/quiryjump/seventeentwo')
        } else if (a === seventeenthree) {
          this.$router.push('/test/smalltest/quiryjump/seventeenthree')
        } else if (a === eighteenone) {
          this.$router.push('/test/smalltest/quiryjump/eighteenone')
        } else if (a === eighteentwo) {
          this.$router.push('/test/smalltest/quiryjump/eighteentwo')
        } else if (a === ninteenone) {
          this.$router.push('/test/smalltest/quiryjump/ninteenone')
        } else if (a === ninteentwo) {
          this.$router.push('/test/smalltest/quiryjump/ninteentwo')
        } else if (a === ninteenthree) {
          this.$router.push('/test/smalltest/quiryjump/ninteenthree')
        } else if (a === ninteenfour) {
          this.$router.push('/test/smalltest/quiryjump/ninteenfour')
        }else if(a === faone){
          this.$router.push('/test/smalltest/quiryjump/faone')
        }else if(a === fatwo){
          this.$router.push('/test/smalltest/quiryjump/fatwo')
        }else if(a === fathree){
          this.$router.push('/test/smalltest/quiryjump/fathree')
        }else if(a === fafour){
          this.$router.push('/test/smalltest/quiryjump/fafour')
        }else if(a === fafive){
          this.$router.push('/test/smalltest/quiryjump/fafive')
        }else if(a === fasix){
          this.$router.push('/test/smalltest/quiryjump/fasix')
        }else if(a === faselven){
          this.$router.push('/test/smalltest/quiryjump/faselven')
        }else if(a === faeight){
          this.$router.push('/test/smalltest/quiryjump/faeight')
        }else if(a === fanine){
          this.$router.push('/test/smalltest/quiryjump/fanine')
        }else if(a === faten){
          this.$router.push('/test/smalltest/quiryjump/faten')
        }else if(a === faeleven){
          this.$router.push('/test/smalltest/quiryjump/faeleven')
        }else if(a === fatwelven){
          this.$router.push('/test/smalltest/quiryjump/fatwelven')
        }else if(a === fathirteen){
          this.$router.push('/test/smalltest/quiryjump/fathirteen')
        }else if(a === fafourteen){
          this.$router.push('/test/smalltest/quiryjump/fafourteen')
        }else if(a === fafiveteen){
          this.$router.push('/test/smalltest/quiryjump/fafiveteen')
        }
      },
      handleNodeClick (data) {
        this.searchForm.kind.id = data.id
        this.selectYyLeftTreesName = '已选: ' + data.name
        this.refreshList()
      },
      handleNodeClose () {
        this.searchForm.kind.id = ''
        this.selectYyLeftTreesName = ''
        this.refreshList()
      },
      addChildTreeNode (node) {
        this.$refs.yyLeftTreesForm.init('addChild', {id: '', parent: {id: node.id, name: node.name}})
      },
       // 新增
      addTreeNode () {
        this.$refs.yyLeftTreesForm.init('add', {id: '', parent: {id: '', name: ''}})
      },
      // 修改
      editTreeNode (data) {
        this.$refs.yyLeftTreesForm.init('edit', {id: data.id, parent: {id: '', name: ''}})
      },
      delTreeNode (data) {
        this.$confirm(`确定删除所选项吗?`, '提示', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          this.loading = true
          this.$http({
            url: '/dqsy/dqsyquiry/yyLeftTrees/delete',
            method: 'delete',
            params: {'id': data.id}
          }).then(({data}) => {
            if (data && data.success) {
              this.$message.success(data.msg)
              this.loading = false
              this.refreshTree()
              this.refreshList()
            }
          })
        })
      },
      // 获取数据列表
      refreshList () {
        this.loading = true
        this.$http({
          url: '/dqsy/dqsyquiry/yyRightTrees/list',
          method: 'get',
          params: {
            'pageNo': this.pageNo,
            'pageSize': this.pageSize,
            'orderBy': this.orderBy,
            ...this.searchForm
          }
        }).then(({data}) => {
          if (data && data.success) {
            this.dataList = data.page.list
            this.total = data.page.count
            this.loading = false
          }
        })
      },
      // 每页数
      sizeChangeHandle (val) {
        this.pageSize = val
        this.pageNo = 1
        this.refreshList()
      },
      // 当前页
      currentChangeHandle (val) {
        this.pageNo = val
        this.refreshList()
      },
      // 多选
      selectionChangeHandle (val) {
        this.dataListSelections = val
      },

    // 排序
      sortChangeHandle (obj) {
        if (obj.order === 'ascending') {
          this.orderBy = obj.prop + ' asc'
        } else if (obj.order === 'descending') {
          this.orderBy = obj.prop + ' desc'
        } else {
          this.orderBy = ''
        }
        this.refreshList()
      },
      // 新增
      add () {
        this.$refs.yyRightTreesForm.init('add', '')
      },
      // 修改
      edit (id) {
        id = id || this.dataListSelections.map(item => {
          return item.id
        })[0]
        this.$refs.yyRightTreesForm.init('edit', id)
      },
      // 查看
      view (id) {
        this.$refs.yyRightTreesForm.init('view', id)
      },
      // 删除
      del (id) {
        let ids = id || this.dataListSelections.map(item => {
          return item.id
        }).join(',')
        this.$confirm(`确定删除所选项吗?`, '提示', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          this.loading = true
          this.$http({
            url: '/dqsy/dqsyquiry/yyRightTrees/delete',
            method: 'delete',
            params: {'ids': ids}
          }).then(({data}) => {
            if (data && data.success) {
              this.$message.success(data.msg)
              this.refreshList()
            }
            this.loading = false
          })
        })
      },
      // 导入成功
      uploadSuccess (res, file) {
        if (res.success) {
          this.$message.success({dangerouslyUseHTMLString: true,
            message: res.msg})
        } else {
          this.$message.error(res.msg)
        }
      },
      // 下载模板
      downloadTpl () {
        this.$utils.download('/dqsy/dqsyquiry/yyRightTrees/import/template')
      },
      exportExcel () {
        this.$utils.download('/dqsy/dqsyquiry/yyRightTrees/export')
      },
      resetSearch () {
        this.$refs.searchForm.resetFields()
        this.selectYyLeftTreesName = ''
        this.refreshList()
      }
    }
  }
</script>
<style>
  .card{
    background-color: #4682B4;
    opacity: 0.85;
  }
</style>
